package wodegua.d24_file_io;

import java.io.*;

/**
 * 字节缓冲流的作用
 * 提高字节流读写数据的性能
 * 原理:字节缓冲输入流自带了8KB缓冲池;字节缓冲输出流也自带了8KB缓冲池。
 *
 * 构造器
 * public BufferedInputStream(InputStream is)   把低级的字节输入流包装成一个高级的缓冲字节输入流，从而提高读数据的性能
 * public BufferedOutputStream(OutputStream os) 把低级的字节输出流包装成一个高级的缓冲字节输出流，从而提高写数据的性能
 */
public class d14_IoBufferedInputOutputStreamTest {
    public static void main(String[] args) {
        try (
                InputStream is = new FileInputStream("helloworld-app/ab.txt");
                InputStream bis = new BufferedInputStream(is);

                OutputStream os = new FileOutputStream("helloworld-app/ab_bak.txt");
                OutputStream bos = new BufferedOutputStream(os);
        ) {
            byte[] buffer = new byte[1024];
            int len;
            while ((len = bis.read(buffer)) != -1) {
                bos.write(buffer,0,len);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
